Decoding method for trellis codes employing a convolutional processor

ABSTRACT

A trellis code of a special class is encoded by employing a binary convolutional code with a small constraint length, followed by a convolutional processor and a signal mapper. The trellis code is decoded by the trellis of the binary convolutional code.

BACKGROUND OF THE INVENTION

In a digital communication system, the transmission of information willbe corrupted by channel noise or other channel defects and hencetransmission errors are likely to occur. In a digital communicationsystem which requires high reliability, channel coding is usually neededto lower the probability of transmission errors. In a channel codingdesign, each unit or bit of digitized information will be mapped into acorresponding codeword (or code path). The set of all codewords iscalled a code. The distance property among codewords of a code can beused to correct transmission errors. In this way, the transmissionreliability can be increased. The mapping between the set of informationunits or bits and the set of codewords is called "coding" or "encoding".If the symbols in each codeword are binary symbols, the channel codingis a binary coding. Sometimes, the mapping is also referred to as a"code". The procedure of recovering the information from the receivedsymbols which are possibly error-corrupted is called "decoding".

The binary trellis code is a frequently used channel coding technique.For a rate k/n binary trellis code, for each time unit, k informationbits are fed into-the encoder which generates n code bits as output. Then code bits depend not only on the k information bits currently used asinput to the encoder but also depend on information bits which were usedas input to the encoder for some earlier time units. A binary trelliscode is hence a kind of code with a memory. The codewords of a binarytrellis code can be represented by paths in a trellis. The mostimportant class of binary trellis codes is the binary convolutionalcode. A binary convolutional code is a linear time-invariant binarytrellis code. Binary convolutional codes were introduced several decadesago and are still very popular.

In the 1982 paper entitled "Channel coding with multilevel/phasesignals," published in IEEE Trans. Inform. Theory., vol. 28, no. 1, pp.55-67, G. Ungerboeck proposed a new idea of channel coding, in which thedesign of trellis codes and modulation are integrated, called trelliscoded modulation (TCM). Consider the signal space 106 , which consistsof 2^(m) signal points {z₁, z₂, . . . , z_(2m) }. Every signal point zin Ω corresponds to a unique binary m-tuple s=(s₁,s₂, . . . , s_(m)) forz ε{z₁, z₂, . . . , z_(2m) } and s₁, s₂, . . . , s_(m) ε{0,1}. Theencoding of Ungerboeck's TCM having an information rate of r informationbits per signal point of Ω is shown in FIG. 1. During the t-th timeunit, the encoder of a binary convolutional code C converts the r-bitinformation u(t)=(u₁ (t), u₂ (t), . . . , u_(r) (t)) into an m-bitoutput s(t)=(s₁ (t),s₂ (t), . . . , s_(m) (t)), which is then mappedinto a signal point ω(s₁ (t),s₂ (t), . . . , s_(m) (t))=ω(s(t)) of thesignal space Ω through a signal mapper S.

Binary trellis codes and trellis coded modulation (TCM) can be combinedas a class of codes called trellis codes. The performances of a trelliscode are primarily evaluated by three parameters: coding rate, decodingcomplexity and probability of decoding errors. Designing a trellis codewith high coding rate, low decoding complexity and low probability ofdecoding errors is always a goal in the area of digital communications.To achieve low probability of decoding errors for a trellis codingsystem, a large free distance is desired, where the free distance of atrellis code is the smallest one of all the possible distances, each ofwhich is measured between a pair of distinct code paths of the trelliscode.

In 1995, Lin and Wang in their U.S. patent application with applicationSer. No. 08/398,797 filed on Mar. 6, 1995, now U.S. Pat. No. 5,570,391,proposed a class of trellis codes for which the encoding can beimplemented by introducing a multilevel delay processor Q between theencoder of the binary convolutional code C and the signal mapper S. Theencoding is shown in FIG. 2. During the t-th time unit, the encoder of arate r/m binary convolutional code C converts the r-bit information u(t)into an m-bit output v(t)=(v₁ (t), v₂ (t), . . . , v_(m) (t)), which isfed into a multilevel delay processor Q. The output of the multileveldelay processor is s(t)=(s₁ (t), s₂ (t), . . . , s_(m) (t)), where s_(p)(t)=v_(p) (t-Σ_(i=p) ^(m) λ_(i)), 1≦p≦m, with λ₁, λ₂, . . . , λ_(m)being nonnegative constants. Through the signal mapper S, a signal pointω(s(t)) in the signal space Ω is obtained as the final output symbol.The decoding of the class of trellis codes which can apply the encodingmethod illustrated in FIG. 2 can be implemented by using the trellis ofC.

In this invention, the inventors design a new class of trellis codes forwhich the encoding can be implemented by modifying the above mentionedmethod by replacing the multilevel delay processor by a convolutionalprocessor. In this way, a trellis code with a large free distance can bedesigned even though the constraint length of the binary convolutionalcode C is small. The inventors also propose a decoding method for thenew class of trellis code which uses the trellis of convolutional codeC.

SUMMARY OF THE INVENTION

This invention is a decoding method for the trellis code T for which theencoding can be implemented by first using the encoder E of a rate r/mbinary convolutional code C to encode an information sequence u={. . . ,u(t-1), u(t), . . . } into a sequence v={. . . , v(t-1), v(t), . . . }that is sequentially converted into a sequence s={. . . , s(t-1), s(t),. . . , } and a sequence ω={. . . ,ω(s(t-1)), ω(s(t)), . . . } through aconvolutional processor P and a signal mapper S, respectivelyillustrated in FIG. 3, where u(t) is the r-bit information to be encodedduring the t-th time unit of encoding, and v(t), s(t) and ω(s(t)) arethe associated output symbols of E, P and S respectively. Note that v(t)and s(t) are binary m-tuples and ω(s(t)) can be either a binary m-tupleor a signal point of a signal constellation. The convolutional processorP is in fact an encoder having a rate m/m binary convolutional code,which can be characterized by a transfer function matrix as is describedin the 1983 book, Error Control Coding : Fundamentals and Applicationsauthored by Shu Lin and Daniel J. Costello, Jr. The transfer functionmatrix G for the convolutional processor is an m×m matrix for which theentry at the intersection of the p-th row and the q-th column isg.sup.(p,q) (X), i.e.,

    G= g.sup.(p,q) (X)!, p,qε{1,2, . . . , m},         (1)

where g.sup.(p,q) (X) represents the generator sequence (impulseresponse) for the case in which only the p-th input line of theconvolutional processor is used as input and the q-th output line of theconvolutional processor is used as output. The parameter g.sup.(p,q) (X)is written in polynomial form by ##EQU1## where α_(i).sup.(p,q) ε{0,1}and λ is a positive constant.

Referring to FIG. 4, assume that

    Λ=max{iλ:α.sub.i.sup.(p,q) =1,1≦p≦m,1≦q≦m}.

The decoding method is implemented by two processors P(²) and P.sup.(1).Let the received symbol be denoted by y(t), which is the possiblynoise-corrupted form of the symbol ω(s(t)). The processor P(²) takes thereceived sequence y={. . . , y(t-1), y(t),y(t+1), . . . , } as input.Based on {. . . , y(t), . . . , y(t+Λ-1), y(t+Λ)} and the transferfunction matrix G and {. . . , v(t-λ-1), v(t-λ)}, the processor P(²)determines M_(v)(t), where M_(v)(t) is the branch metric needed by thedecoding trellis code T, for each of the 2^(m) possible values of v(t).Then, the set T_(M) (t)={M_(v)(t) : v(t)ε{0,1}^(m) } is fed into theprocessor P.sup.(1).

The processor P.sup.(1) takes the metric sequence {. . . , T_(M) (t-1),T_(M) (t)} as input and applies the Viterbi algorithm to the trellis ofC to recover the transmitted symbols u(t-λ+1) and v(t-λ+1) by settingthe truncation length of decoding for C to be λ.

The trellis code T can be generalized in such a way that g.sup.(p,q) (X)of the transfer function matrix is modified to be ##EQU2## where n_(p)is a nonnegative constant. Then, in the decoding, the parameter Λ ismodified to be

    Λ=max{n.sub.p +iλ:α.sub.i.sup.(p,q) =1,1≦p≦m,1≦q≦m}.

Note that if g.sup.(p,q) (X)=0 for p≠q and g.sup.(p,p)(X)=X^(r).sbsp.p.sup.λ+n.sbsp.p for 1≦p≦m, then trellis code T becomes atrellis code described in the U.S. Pat. No. 5,570,391, where r_(p) is anonnegative constant. Hence, this invention is restricted to the casethat g.sup.(p,q) (X) is nonzero for some pair of (p,q) with p≠q.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates the encoding method for the Ungerboeck's TCM;

FIG. 2 illustrates the encoding method for the trellis code proposed byLin and Wang in March 1995;

FIG. 3 illustrates an encoding method of the trellis code T suitable forthe proposed decoding method;

FIG. 4 illustrates the decoding method for the trellis code T;

FIG. 5 shows an 8PSK signal constellation;

FIG. 6 illustrates the encoder E of the linear binary convolutional codeC used in the first embodiment;

FIG. 7 illustrates the state transition diagram of the linear binaryconvolutional code C used in the first embodiment;

FIG. 8 illustrates the relation between v(t) and s(t) for the firstembodiment; and

FIG. 9 illustrates the simulation results for the first embodiment.

DESCRIPTION OF THE PREFERRED EMBODIMENT

The preferred embodiment shows that it is possible to design a trelliscode with a large free distance, which can be encoded by using themultilevel encoding method illustrated in FIG. 3. This embodimentdemonstrates the powerful capabilities of the proposed decoding method.

The signal space Ω which consists of 2^(m) signal points z₁, z₂, . . . ,z_(2m) can be partitioned into an m-level structure such that eachsignal point z corresponds to a unique binary m-tuple s=(s₁,s₂, . . . ,s_(m)) for zε{z₁,z₂, . . . , z_(2m) } and s₁,s₂, . . . , s_(m) ε{0,1}.Let the mapping relation between z and s be ω(s)=z. The level distanceΔ_(p) of the signal space Ω is defined as follows: ##EQU3## If Ω is asignal constellation then Δ(z,z') stands for the squared Euclideandistance between z and z', i.e., D² (z,z'); and if Ω is a collection ofbinary m-tuples then Δ(z, z') stands for the Hamming distance betweenthe binary representations of z and z', i.e., d(z, z'). It can be saidthat the distance structure of the signal space is {Δ₁,Δ₂, . . . , Δ_(m)}. For example, the 8PSK signal constellation can be partitioned into athree-level structure as shown in FIG. 5, for which the distancestructure is described by

    Δ.sub.1 =D.sub.1.sup.2 =0.586, Δ.sub.2 =D.sub.2.sup.2 =2, Δ.sub.3 =D.sub.3.sup.2 =4.

Moreover, for example, the collection of binary two-tuples Ω={0,1}² ={z₀=(0,0), z₁ =(1,0), z₂ =(0,1), z₃ =(1,1)} can be partitioned as ##EQU4##

The distance structure for Ω is described by ##EQU5##

Consider the proposed trellis code T with the signal space Ω. Supposethat for each i there is at most one a_(i).sup.(p,q) =1 for all 1≦p≦mand 1≦q≦m. In the decoding, the bit metric can be calculated from thereceived sequence y={. . . , y(t), . . . , y(t+Λ-1), y(t+Λ)} by ##EQU6##where y(t) is the possibly noise-corrupted form of the transmittedsymbol ω(s(t)). Note that the minimum value in the equation (4) isdetermined under the m constraints on the parameters, s₁, . . . , s_(m),i.e., s_(k) =Σ_(h=1) ^(m) Σ_(j=0) a_(j).sup.(h,k) v_(h) (t+ i-j!λ) fork=1,2, . . . , m. In general, not all of these m constraints can be set,since there may exist s_(k) which is determined by v_(h) (t+ i-j!λ) thatis not yet recovered. For each k, if the constraint on Sk can not beset, we may remove the constraint on s_(k) in equation (4). However, inmany cases, we may design schemes such that all the parameters s_(k),1≦k<q can be determined by the previously recovered results. Then, thebranch metric M_(v)(t) which is needed to decode trellis code T usingthe trellis of C can be easily calculated by summing the bit metrics ofM_(v).sbsb.1.sub.(t), . . . , M_(v).sbsb.m.sub.(t).

With a proper design of the transfer function matrix, the free distanceof T can be very large while the constraint length of C remains small.In the following, a design of the transfer function matrix for thetrellis code T with an m-level form is given.

Let l₁ =ζ₁ =0 and let l₂, l₃, . . . , l_(m),ζ₂,ζ₃, . . . , benonnegative constants. Let r_(p) =Σ_(i=p+1) ^(m) (l_(i) +ζ_(i)) forp=1,2, . . . , m-1 and r_(m) =0. Set ##EQU7##

During the t-th time unit of encoding, the output of the convolutionalprocessor is s(t)=(s₁ (t), s₂ (t), . . . , s_(m) (t)), where ##EQU8##

Consider the following example. Let m=3 and v=(. . . , (000), (000),(000), . . . ) and v'=(. . . , (000), v'(t)=(100), v'(t+1)=(110),v'(t+2)=(111), (000), . . . ). Let g.sup.(1,1) (X)=X⁴λ, g(²,1)(X)=X³λ,g.sup.(2,2) (X)=X.sup.λ, g.sup.(3,3) (X) =1 and g.sup.(p,q) (X)=0otherwise. Setting λ=3, the sequences v and v' are converted intosequences s and s', which are respectively given by ##EQU9##

Then, using the 8PSK signal constellation, ##EQU10## fori=10,11,12,13,14. Thus, Δ(ω,ω')=D² (ω,ω')=0.586×5+2×2+4×1=10.93.

The free distance of T, denoted by Δ_(free), is the smallest one of allthe possible distances, each of which is measured between any pair oftwo distinct symbol sequences ω and ω' of T, i.e., ##EQU11## Note thatif the signal space is a signal constellation then Δ_(free) =D_(free) ²is the squared free distance of T which is the smallest one of all thepossible squared distances, each of which is measured between any pairof distinct symbol sequences of T. If the signal space is a collectionof binary m-tuples then Δ_(free) =d_(free) is the free distance of Twhich is the smallest one of all the possible Hamming distances each ofwhich is measured between binary representations of any pair of distinctsymbol sequences of T.

For 2≦p≦m, let l_(p) >.left brkt-bot.Δ_(p) /Δ_(p-1) .right brkt-bot..Moreover, let ζ_(p) ≧ζ_(p-1) +l_(p) if l_(p) >0 and ζ_(p) =0 if l_(p)=0. If the convolutional code C is not catastrophic, by taking λ to be alarge enough number, it can be shown that the free distance of thetrellis code T is ##EQU12##

Consider the following embodiment which is an 8PSK TCM using a 4-statebinary convolutional code C. The encoder and the state diagram of code Care given in FIG. 6 and FIG. 7 respectively. The transfer functionmatrix of the convolutional processor is G with g.sup.(1,1) (X)=X⁴λ,g.sup.(2,1) (X)=X³λ, g.sup.(2,2) (X)=X.sup.λ, g.sup.(3,3) (X)=1 andg.sup.(p,q) (X)=0 otherwise. It can be checked that the path with thesmallest free distance from the all zero path is the nonzero self-looparound the state S₀₀ as shown in FIG. 7. The squared free distance ofthe TCM is then Δ_(free) =D_(free) ² =0.586+2+2+4=7.17. The decoding forthis TCM needs to use the trellis for the binary convolutional code C.The relation between s(t) and v(t) is shown in FIG. 8. At the (t+4λ)-thtime unit of decoding, y(t+4λ), y(t+4λ-1), and y(t+4λ-2), . . . arealready received. We assume that v(t-i) has already been correctlyrecovered for i≧λ. The decoding consists of the following steps.

Step 1 : We calculate the metric M_(v).sbsb.3.sub.(t) for each v₃(t)ε{0,1} by min{Δ(y(t),ω(s)):s₁ =v₁ (t-4λ)+v₂ (t-3λ),s₂ =v₂ (t-λ), s₃=v₃ (t)}.

Step 2 : We calculate the metric M_(v).sbsb.2.sub.(t) for each v₂(t)ε{0,1} by min{Δ(y(t+λ),ω(s)) : s₁ =v₁ (t-3λ)+v₂ (t-2λ),s₂ =v₂ (t),s₃ε{0,1}}+min{Δ(z(t+3λ),ω(s)) : s₁ =v₁ (t-λ)+v₂ (t),s₂ ε{0,1},s₃ ε{0,1}}

Step 3 : We calculate the metric M_(v).sbsb.1.sub.(t) for each v₁(t)ε{0,1} by min{Δ(z(t+4λ),ω(s)) : s₁ =v₁ (t)+v₂ (t+λ),s₂ ε{0,1},s₃ε{0,1}},

where v₂ (t+λ) is estimated to be equal to s₂ which minimizesα(z(t+2λ),ω(s)) with s₁ =v₁ (t-2λ)+v₂ (t-λ).

Step 4: By summing M_(v).sbsb.1.sub.(t), M_(v).sbsb.2.sub.(t) andM_(v).sbsb.3.sub.(t), we have the branch metric M_(v)(t). Then, we usethe 4-state decoding trellis of the convolutional code C with a decodingtruncation length of λ to recover v(t-λ+1). The decoding procedure isthen back to step 1.

Simulation results for the embodiment using the above decoding methodare given in FIG. 9, where λ=30. We see that a coding gain of about 3.5dB over the uncoded QPSK is achieved at bit error rate of 10⁻⁶.

Finally, the binary convolutional code C used in encoding and decoding Tcan be replaced by the more general binary trellis code, or the encoderof the trellis code C can be replaced by encoders of a plurality oftrellis codes which together convert u(t) into v(t), and which is thenprocessed by the convolutional processor P and the signal mapper S; theViterbi algorithm for C used in the processor P.sup.(1) being replacedby a plurality of Viterbi algorithms for the plurality of trellis codes.

As an alternative to summing bit metrics M_(v).sbsb.1.sub.(t), . . . ,M_(v).sbsb.m.sbsb.(t) to calculate M_(v)(t) in the situation wheresymbol v(t) is a binary m-tuple which can be expressed by v(t) =(v₁ (t),. . . , v_(m) (t)), the branch metric M_(v)(t) may also be calculated bysumming metrics M_(x).sbsb.1.sub.(t), . . . , M_(x).sbsb.L.sub.(t),1<L<m, where M_(x).sbsb.j.sub.(t), 1≦j≦L, is calculated based ony(t+iλ), and i is determined by a corresponding transfer functionmatrix.

In addition, it will be appreciated that the information symbol u(f) canbe replaced by l information symbols, i.e., u(t), u(t+1/l)), . . . ,u(t+(l-1)/l); the output branch symbol of C, v(t) can be replaced by loutput branch symbols of C, i.e., v(t), v(t+(1/l)), . . . , v(t+(l-1)/λ;the output symbol of P, s(t) can be replaced by l' output branch symbolsof P, i.e., s(t), s(t+1/l'), . . . , u(t+(l'-1)/l')); and the outputsymbol of S, ω(s(t+(l'-1)/l')) can be replaced by l' output branchsymbols of P, i.e., ω(s(t)), ω(s(t+1/l')), . . . , (s(t+(l'-1)/l')),where l and l' are positive integers.

What is claimed is:
 1. A decoding method for a trellis code T for whichthe encoding can be implemented by feeding an information sequence u={.. . , u(t-1), u(t), . . . } into an encoder of a convolutional code Cfollowed by a convolutional processor P and a signal mapper S forgenerating output sequences v={. . . , v(t-1), v(t), . . . }, s={. . .,s(t-1),s(t), . . . }, and ω={. . . , ω(s(t-1)), ω(s(t)), . . . }respectively, wherein u(t) is an information symbol to be encoded duringa t-th time unit, v(t) is an associated output branch symbol of theencoder of C, s(t) is an associated output symbol of P, and ω(s(t)) isan associated output symbol of S which represents a signal point of asignal space Ω, and wherein the convolutional processor P ischaracterized by a transfer function matrix G= G.sup.(p,q) (X)! withG.sup.(p,q) (X)≠0 for some p≠q, comprising the decoding steps of:(a)Determining, in a processor P.sup.(2), a branch metric M_(v)(t) for eachof the possible v(t) based on the received sequence y={. . . , y(t-1),y(t), . . . , }, the transfer function matrix G, and the previouslyrecovered symbols v(t-1), i≧λ, wherein λ is a positive constant and y(t)is a possibly noise-corrupted form of ω(s(t)); (b) Applying, in aprocessor P.sup.(1), the Viterbi algorithm to the trellis of C torecover u(t-λ+1) and v(t-λ+1) based on a metric sequence {. . . ,T_(M)(t-1), T_(M)(t) }, wherein T_(M)(t) is a set consisting of M_(v)(t)for all the possible v(t).
 2. A decoding method as in claim 1, whereinsaid convolutional code C is replaced by a trellis code also denoted byC.
 3. A decoding method as in claim 2, wherein said encoder of thetrellis code C is replaced by encoders of a plurality of trellis codeswhich together convert u(t) into v(t) , which is then processed by theconvolutional processor P and the signal mapper S; and said Viterbialgorithm for C used in the processor p.sup.(1) is replaced by aplurality of Viterbi algorithms for said plurality of trellis codes. 4.A decoding method as in claims 2 or 3, wherein said transfer functionmatrix is G= g.sup.(p,q) (X)!, p,qε{1, 2, . . . , m} such that ##EQU13##wherein α_(i).sup.(p,q) ε{0,1}, r_(p) and n_(p) are nonnegativeconstants, and r₁ +n₁ ≧r₂ +n₂ ≧. . . ≧r_(m) +n_(m).
 5. A decoding methodas in claims 2 or 3, wherein said symbol v(t) is a binary m-tuple whichcan be expressed by v(t)=(v₁ (t), . . . , v_(m) (t)), and said branchmetric M_(v)(t) is calculated by summing bit metricsM_(v).sbsb.1.sub.(t), . . . , M_(v).sbsb.m.sub.(t) up, in whichM_(v).sbsb.j.sub.(t), 1≦j≦m, is calculated based on y(t+iλ) with idetermined by said transfer function matrix.
 6. A decoding method as inclaim 2 or 3, wherein said symbol v(t) is a binary m-tuple, which isexpressed by v(t)=(v₁ (t), . . . , v_(m) (t)) =(x₁ (t), . . . , x_(L)(t)), 1<L<m!, and said branch metric M_(v)(t) is calculated by summingmetrics M_(x).sbsb.1.sub.(t), . . . , M_(x).sbsb.L.sub.(t), 1<L<m, withM_(x).sbsb.j.sub.(t), 1≦j≦L, being calculated based on y(t+iλ) and ibeing determined by said transfer function matrix.
 7. A decoding methodas in claims 2 or 3, wherein the signal space Ω is a signalconstellation and said trellis code T is be a trellis coded modulation.8. A decoding method as in claims 2 or 3, wherein the signal space Ω isa collection of binary m-tuples and said trellis code T is a binarytrellis code.
 9. A decoding method as in claims 1 or 2, wherein saidinformation symbol u(t) is replaced by l information symbols, i.e.,v(t), u(t+(1/l)), . . . , u(t+(l-1)/l); and said output branch symbol ofC, v(t), is replaced by l output branch symbols of C, i.e., v(t),v(t+1/l), . . . , v(t+(l-1)/l); and said output symbol of P, s(t), isreplaced by l' output symbols of P, i.e., s(t), s(t+1/l'), . . . ,s(t+(l-1)/l); and said output symbol of S, ω(s(t)), is replaced by l'output symbols of S, i.e., ω(s(t)), ω(s(t+1/l')), . . . ,ω(s(t+(l'-1)/l')), where l and l' are positive integers.